<?php
/**
 * 关键词处理类
 * @author chenyangbj8826
 *
 */
class Search_Keyword extends Model_Database {

	protected static $_table = 'keyword';
	private static  $_instance = NULL;
	
	/**
	 * 单一实例
	 */
	protected  static function instance()
	{
		is_null (self::$_instance) && self::$_instance = new Search_Keyword();		
		return self::$_instance;
	
	}
	/**
	 * 功能：获取指定关键词类别和城市的关键字信息
	 * 参数：$type 关键字类别
	 * 参数：$city 城市id 
	 * 返回值：如果有则返回关键词数组，如果没有则返回null
	 */		
	public function get_search_keywords($type, $city)
	{
		//获取关键词类别，默认为0
		$type_id = Kohana::config('keyword.type.'.$type,-1);
		if($type_id==-1)
			return NULL; 
		$query = DB::select()
					->from(self::$_table)
					->where('keyword_type', '=', $type_id)
					->and_where('city','=',$city)
					->order_by('id')
					->execute();
		
		$rs = $query->as_array();
		$arr = Null;
				
		for($i=0; $i< count($rs); $i++)
		{
			$arr[$rs[$i]['id']] = $rs[$i]['keyword'];
		}
		return $arr;
	}
	
	/**
	 * 功能：设置指定关键词类别和城市的关键词信息
	 * 参数：$type 关键词类别
	 * 参数：$city 城市id
	 * 参数：$arr_search_keywords关键词信息
	 * 返回值：成功返回true，失败抛出异常
	 */
	public function add_search_keywords($type, $city, $arr_search_keywords)
	{
		try {			
			//获取关键词类别，默认为0
			$type_id = Kohana::config('keyword.type.'.$type,-1);
			if($type_id==-1)
				return NULL; 
			
			if($type_id != -1 AND is_array($arr_search_keywords) AND !empty($arr_search_keywords))
			{
				//1.删除旧数据
				$query = DB::delete(self::$_table)
							->where('keyword_type', '=', $type_id)
							->and_where('city','=',$city)
							->execute();
			    //2.插入新数据
				for($i=0; $i< count($arr_search_keywords); $i++)
				{
					if($arr_search_keywords[$i])
					{
						$query = DB::insert(self::$_table)
									->columns(array('keyword','city','keyword_type','create_time'))
									->values(array($arr_search_keywords[$i],$city,$type_id,time()))
									->execute();
					}
				}
			}
			return true;
		} catch (Exception $e) {
			throw ($e);
		}
	}
    
	/**
	 * 参数：$type：固定值：促销类：cuxiao、评测类：pingce、装修网类：mall
	 * 参数：$city：城市id
	 * 返回值：存在返回关键词数组，没有返回null
	 */
	public static function  search_keywords($type, $city)
	{
		return self::instance()->get_search_keywords($type, $city); 
	}
}